Method and system for improved copy quality in a multifunction reprographic system

ABSTRACT

A method and system reconstructs a contone image from a binary image by first tagging pixels to identify one of a multiplicity of image content types. The tag information and the pattern of bits surrounding the pixel to be converted to a contone value are used to reconstruct a contone image from a binary image. The pattern of bits in the neighborhood is used to generate a unique identifier. The unique identifier is used as the address for a lookup table with the contone value to be used. A filter also generates a contone value. A selector selects between the look-up table contone value and the filter contone value based an image context type.

BACKGROUND AND SUMMARY

Digital multifunction reprographic systems are well known and havereplaced optical reprographic systems as a way to reproduce images. Inthese conventional digital multifunction reprographic systems, a scanneraccepts a document to be copied and converts the document intoelectronic image(s). These images, usually in the form of pages, arethen passed to a central control unit which may re-order or reorganizethese pages and then, depending on the request of the user of thedevice, send the pages or images to a destination. Often thisdestination is an attached printing unit which makes one or more copiesof the original document.

However, these conventional devices perform many other functions besidessimple copying. The central control unit is usually equipped with acombination of hardware and software elements that enable it to acceptinput from other sources. The other sources may include some sort ofnetwork interface and/or an interface to a telephone system to enableFAX input.

The network interface is usually configured so that it can accept jobsto be printed from any computer source that is connected to the network.This configuration normally includes elements that can convert inputdocuments formatted in one or more page description languages (PDLs) tothe native format of the printing device.

An important inner component of such a conventional multifunctiondigital device is the image path. This is the combination of softwareand hardware elements that accepts the electronic images from amultiplicity of sources and performs any operations needed to convertthe images to the format desired for the various output paths. The imagepath is usually one of the more complex and costly components of suchdigital multifunction devices.

The image path for a conventional multifunction device usually hasseveral constraints. One the hand, there is a desire to make the imagepath utilize data in a multi-bit per pixel format so as to provide formaximum image quality and a minimum loss of critical information in thetransformation of documents from paper to electronic form. On the otherhand, there are cost constraints and performance limits on the devicesor software that comprise the image path.

Conventional image path electronics may also utilize binary image paths.In this situation, if the input information is scanned in a binarymanner at sufficiently high resolution, the scanned image can bereconstructed at the output with little or no perceptible loss of imagequality.

Another component of many conventional multifunction devices, especiallyfor those devices having a printing engine that is capable of producingcolored output, is the use of analog modulation schemes for the output.In these devices, analog data, in the form of multi-bit pixels, ispresented to the modulator of the output printing device. The modulatorcompares the analog equivalent of the input byte of data to a periodicsaw tooth wave. The output therefrom is a signal to the laser imagingcomponent that is pulsewidth modulated by the data stream.

One recent development for conventional multifunction reprographicmachines is the use of both binary and analog data in the image path. Insuch a hybrid image path, the data from the scanner is digitized andconverted to binary. All of the intermediate elements of the image pathare designed to work with the compact binary data format. Only at theoutput is the data converted to multi-bit analog form.

One way to implement the resolution conversion is to pass the binarydata through the digital equivalent of a two-dimensional low passfilter. The low pass filter may replace each pixel in the binary imageby the average of the values within some window centered on the pixel ofinterest. While such a system does an adequate job of converting thehigh resolution binary data to analog data, these solutions also havethe deleterious effect of smearing sharp edges in the original document.Such an effect is particularly detrimental when reproducing text andline art.

A desirable modification to hybrid image paths would be a system whereinthe conversion from binary format to analog format could take intoaccount the existence of sharp edges in the image. Ideally, such asystem would be adaptive, that is, the system would change its behaviorso that it would apply a resolution conversion process appropriate tosharp edges for those parts of the image that have such edges, but use adifferent process that was better adapted to more continuous tone partsof the image.

Moreover, the resolution conversion process could make furtherdistinctions in the various aspects of the image beyond a simpledivision into pictorial vs. text and line art. Such distinctions mightinclude distinguishing between low and high frequency halftone content,or between pictorial and graphic arts kinds of images.

Systems that implement resolution conversion processes, like thoseoutlined above, show significant improvement in image quality comparedto systems that do not. However, such systems are subject to problems.One such problem is the need to somehow distinguish those parts of theimage that have edges from those parts of the image that do not. Variousprocesses have been proposed to identify such regions and to develop animage parallel to that being reproduced, a tag image that identifies thedifferent characteristics of each part of the image.

Therefore, it is desirable to implement a method of reconstructing acontone image from its halftoned counterpart that is efficient in use ofimage path resources and at the same time is adaptive to the differentcharacteristics of the underlying image so as to maximize the imagequality of the output.

BRIEF DESCRIPTION OF THE DRAWING

The drawings are only for purposes of illustrating various embodimentsand are not to be construed as limiting, wherein:

FIG. 1 shows the image path for a conventional multifunctionreprographic system;

FIG. 2 shows a flowchart of the calibration process;

FIG. 3 shows a 4×4 pattern generation kernel matrix;

FIG. 4 shows how the 4×4 matrix from FIG. 3 is used to generate a uniquepattern identifier;

FIG. 5 shows a circuit that generates a reconstructed contone version ofa tagged binary image;

FIG. 6 shows another circuit that generates a reconstructed contoneversion of a tagged binary image; and

FIG. 7 shows another circuit that generates a reconstructed contoneversion of a tagged binary image.

DETAILED DESCRIPTION

For a general understanding, reference is made to the drawings. In thedrawings, like references have been used throughout to designateidentical or equivalent elements. It is also noted that the drawings maynot have been drawn to scale and that certain regions may have beenpurposely drawn disproportionately so that the features and conceptscould be properly illustrated.

FIG. 1 shows, in schematic form the general, image path of amultifunction reprographic system. The image path is a combination ofhardware and software elements that generate, process, and store thedigital page images. A control system (not shown) configures eachelement of the image path depending on the user job. The control systemalso schedules the various jobs and functions of the entire system.

As illustrated in FIG. 1, digital scanner 101 accepts a hardcopy versionof the page or pages to be copied and converts each page to a digitalimage, in contone form, at some moderately high resolution. Within thescanner 101, there are usually electronic elements that do some initialprocessing of the image, correcting, if needed, for any optical orillumination defects in the scanner 101.

The digital page image is then passed to a preprocessor 102 thatperforms further manipulations of the page image, such as editing, ortone correction. The preprocessor 102 converts the contone image fromthe scanner 101 to a binary image 109. The preprocessor 102 also canform a tag image 110. This tag image 110 can identify, at a pixel level,various characteristics of the underlying page image. For example, thetag image 110 can indicate whether a pixel in the page image is part ofa sharp edge or not. Further details of the tag image will be describedbelow.

After the preprocessing, the page and tag images are passed through acompression circuit 103 which losslessly compresses the page and tagimages to a smaller size. The compressed images are then passed to amemory 104. The memory 104 stores each page image and its associated tagimage, and keeps track of all the relevant sets of images that comprisethe document being copied. The memory 104 can be used for many purposes,including for example, the ability to print multiple copies of an inputdocument with a single scan. There are many other functions of thememory 104 that are well known to those skilled in the art.

At the time of marking, the compressed page and tag image in memory arefirst decompressed using the decompressor circuit 105 and the resultantimage and tag are passed to the binary to contone converter 106. Thebinary to contone converter 106 is conventionally implemented as atwo-dimensional digital filter. The filter may be altered byincorporating one or more adaptive elements that are used to enhanceedges that are characteristic of text and line art copy. With suitabletagging apparatus upstream, the filter may be switched between one ofseveral modes to adapt to the content of the portion of the image beingconverted.

To realize binary to contone conversion, two parameters are taken intoconsideration. The first parameter is directed to the pattern of pixelsin the neighborhood of the pixel being converted. More specifically, apattern of pixels in the neighborhood of the pixel being converted isidentified. An example of a pattern identifier process is disclosed inU.S. Pat. No. 6,343,159. The entire content of U.S. Pat. No. 6,343,159is hereby incorporated by reference.

Once the pattern is identified, a pattern identifier dataword isforwarded to a plurality of look-up tables, each look-up table beingcapable of converting the pattern identifier dataword to a contonevalue. These look-up tables are correlated to both the image pattern andimage content type, thus a second parameter needs to be considered tochoose the correct look-up table.

The second parameter is directed to the characterization of the imagecontext in the neighborhood of the pixel being converted. As thedocument is scanned and converted to binary, each pixel is tagged withtwo bits of information that identify which of a predetermined number ofclasses of image content characterize the image context in theneighborhood.

An example of a segmentation process that tags the image based on imagecontent is disclosed in U.S. Pat. No. 6,549,658. The entire content ofU.S. Pat. No. 6,549,658 is hereby incorporated by reference.

The tag information is carried through the image path in parallel withthe image information proper and used to control the binary to contoneconversion at the output. The tag information divides up the varioustypes of image content so that the system can adequately cover thereconstruction of all images and still realize the appropriate imagequality.

FIG. 2 shows a flowchart for creating the values for the look-up tables.As illustrated in FIG. 2, initially, classes of image content aredefined at step S101.

At step S102, a pattern identification matrix is chosen. The patternidentification matrix is a small rectangular window around each pixelthat is used to identify the pattern of pixels around the pixel ofinterest. In the following discussion, the height and width of thewindow are N and M, respectively.

For encoding, the size of the look-up table is 2^(N*M); i.e., a 4×4pattern identification matrix window generates a look-up table that is65536 elements long. For each image, a pattern kernel is centered on thepixel of interest and a pattern identifier is generated. The process ofgenerating the pattern identifier will be described in more detailbelow.

For each image class, a large set of test documents is assembled at stepS103. For each image class, the test document may be composed ofportions of actual customer images and synthetically generated imagesthat are representative of that kind of image content likely to beencountered. Each test document contains only image content from itsclass. Thus, for example, a pictorial document class would include avariety of photographs, as well as images from high quality magazinereproduction where the halftone frequency is high; e.g., above 175 dpi;but not text or line art. A document class representing text and lineart set would include a large variety of text in terms of fonts andsizes as well as non-Western character sets e. g. Japanese and Chinese.Similarly, a document class representing low frequency halftonedocuments would include samples from newspapers and similar kinds ofdocuments.

In the next phase of the calibration process, at step S104, each ofthese test documents is scanned using a scanner. The output of this scanis the contone version of the document. This contone image is nowfurther processed, at step S105, with a halftone. The result of theprocess of step S105 is a binary version of the same document image.Therefore, when completed, the calibration process generates two imagesper document: a contone image and a binary image.

Each halftone image is scanned, pixel by pixel, at step S106, and foreach pixel, a pattern identifier is generated. The same process ofgeneration is used during calibration and reconstruction. Each elementof the pattern kernel is identified with a power of 2 starting with 2⁰=1and going to 2^((N*M−1)). There is no unique way of matching eachelement of the kernel with a power of 2; can be chosen at random; aslong as the same matching is used for the calibration andreconstruction. However, it is easier to have some simple ordering ofthe matching, say from upper left to lower right going across the rows.FIG. 3 shows an example of a matching scheme for a 4×4 kernel 301. Ineach element of the kernel, the upper left hand number is a simple indexinto that element, while the lower right number is the power of 2associated with the element. In this example, the weight of element ofindex i is given by W_(i)=2^(i).

The pattern kernel is applied to each pixel in the binary image and apattern identifier is generated by developing a N*M bit binary numberwhere the 1s and 0s of the binary number are determined by the imagepixel underlying the corresponding pattern kernel element. For thoseelements of the kernel where the corresponding pixel in the binary imageis a 1, a 1 is entered into the corresponding power of 2 in the binaryrepresentation of the pattern identifier, and where the pixel is 0, a 0is entered into the identifier. That is the pattern identifier isgenerated according to the equation:Identifier=Σw_(i)*p_(i)

Where w_(i) is the weight for the pattern kernel element, and p_(i) isthe corresponding image pixel value (0 or 1).

FIG. 4 shows an example for a part of an image with the 4×4 kernelapplied. Using the pattern kernel 301 and the image portion 401, thepattern identifier for this pattern is given by the binary number:0101101001011010 or decimal 23130.

Using the pattern identifier, the value of the pixel in the contoneimage that corresponds to the pixel in the center of the pattern kernelis selected. Using this value, the calibration program keeps a runningaverage value of the contone value for all the pixels with the samepattern identifier, at step S107. As noted above, for a 4×4 window,there are potentially 65536 different pattern identifiers.

The process continues for all images for this particular image contenttype, at steps S108 and S111. After all the test images for a particularclass of image content have been processed in this way, a table of theaverage value of the contone pixels for each unique pattern identifierhas been created. This average value will be the entry in the look-uptable for the reconstruction process. The look-up table is simply a65536 byte table whose entries are the average contone pixel value foreach pattern identifier, at step S109.

The process is repeated for each class of image content, at steps S110and S112. After the above calibration process has been carried out foreach set of image content, a number of separate look-up tables generatedare generated, one for each content type.

As discussed above, each image pixel is input to the binary to contonereconstruction element of the image path along with its correspondingtag bits. The binary to contone element keeps a memory of a fewscanlines and uses the scanlines to reconstruct, for each pixel, thepattern identifier using the same process as was used in theabove-described calibration process. This pattern identifier is theaddress for the look-up tables, and the tag bits are used to choosewhich look-up table is actually used for generating the output. FIG. 5shows schematically a system that carries out the binary to contonereconstruction.

In FIG. 5, the binary image data stream is input to a pattern identifiercircuit 501 that computes the pattern identifier, using the patternkernel 502. The output of the pattern identifier circuit 501 is a N*Mbit number that is input to the look-up tables, 503, 504, and 505. Theselook-up tables can be implemented as simple memory chips or equivalentcircuit elements, or the look-up tables may be part of a larger ASIC orsimilar complex programmable device. The look-up tables may be hardcoded, permanently programmed for example as ROM memory, or the look-uptables may be programmable to allow for changes.

The tag data stream, suitably delayed to account for any delays incomputing the pattern identifier, is input to a multiplexer 506. Themultiplexer 506 accepts the tag data input and activates the one of itsoutputs that corresponds to the binary number represented by the tag.These outputs are each connected to the output enable control of one ofthe look-up tables, 503, 504, and 505. Thus, the look-up table that hasbeen loaded with the contone value that corresponds to the pattern forthe image type is enabled and its value is output where it is used tomodulate the output printing mechanism.

In FIG. 6, a binary image data stream is input to a pattern identifiercircuit 501 that computes the pattern identifier, using the patternkernel 502. The output of the pattern identifier circuit 501 is a N*Mbit number that is input to a look-up table 503. The look-up table canbe implemented as simple memory chips or equivalent circuit elements, orthe look-up table may be part of a larger ASIC or similar complexprogrammable device. The look-up table may be hard coded, permanentlyprogrammed for example as ROM memory, or the look-up table may beprogrammable to allow for changes.

The binary input stream is, in parallel, passed to a two-dimensionaldigital filter 604. The two-dimensional digital filter 604 includesmemory to allow for several scanlines of data to be stored to allow thetwo-dimensional digital filter 604 to operate on the data in a regionaround the pixel of interest.

The two-dimensional digital filter 604 operates using a matrix of pixelscentered on the pixel being reconstructed. The matrix may be square,although it may be rectangular or other shape. The values in this matrixare chosen to provide a digital filtering function when the pixels ofthe image are convoluted with the filter matrix.

The process governing the reconstruction of the two-dimensional digitalfilter 604 is$t_{x} = {\sum\limits_{i}^{\quad}{\sum\limits_{j}^{\quad}{x_{i\quad j}*f_{i\quad j}}}}$wherein t_(X) is the output pixel, x_(ij) is the input binary pixel atlocation (i,j) relative to the pixel under test, f_(ij) are the filterweights, and the summation is over all the pixels in the filter window.

Tag data is used to control which method is used to do the conversion.The tag data indicates whether a pixel is a pictorial pixel or a textpixel. If the image neighborhood contains only pictorial pixels, thetwo-dimensional digital filter 604 is used to convert the current pixelsvalue to a gray value. If any of the pixels in the neighborhood is atext pixel, the look-up table 503 is used to convert the current pixel1-bit value to a gray value.

It is noted that the filtering method may not be limited to a singlefilter, but may also utilize a plurality of filters, each correspondingto a different type of pictorial pixel. In this situation, the tag datastream would also include additional tags, corresponding to thepre-defined pictorial types, and the circuitry would include furtherlogic so as to enable the selection of the proper filter output to beused downstream in the image processing pipeline.

Alternatively, if additional tags such as low frequency halftone, highfrequency halftone, text-on-tint, etc. are available, several look-uptables could be used for the different pixel regions and the digitalfilter shall be used for the pictorial region. Such a system isillustrated in FIG. 7.

As illustrated in FIG. 7, a binary image data stream is input to apattern identifier circuit 501 that computes the pattern identifier,using the pattern kernel 502. The output of the pattern identifiercircuit 501 is a N*M bit number that is input to a plurality of look-uptables 503, 504, and 505. These look-up tables (503, 504, and 505) canbe implemented as simple memory chips or equivalent circuit elements, orthe look-up tables may be part of a larger ASIC or similar complexprogrammable device. The look-up tables (503, 504, and 505) may be hardcoded, permanently programmed for example as ROM memory, or the look-uptables may be programmable to allow for changes.

Tag data stream, suitably delayed to account for any delays in computingthe pattern identifier, is input to a multiplexer 506. The multiplexer506 accepts the tag data input and activates the one of its outputs thatcorresponds to the binary number represented by the tag. These outputsare each connected to the output enable control of one of the look-uptables (503, 504, and 505). For example, as illustrated, output enablecontrol signal Enable X is connected to LUTX (505), thereby controllingthe output of this table. Thus, the look-up table that has been loadedwith the contone value that corresponds to the pattern for the imagetype is enabled and its value is output to be used to modulate theoutput printing mechanism.

As further illustrated by FIG. 7, The binary input stream is, inparallel, passed to a two-dimensional digital filter 604. Thetwo-dimensional digital filter 604 includes memory to allow for severalscanlines of data to be stored to allow the two-dimensional digitalfilter 604 to operate on the data in a region around the pixel ofinterest.

The two-dimensional digital filter 604 operates using a matrix of pixelscentered on the pixel being reconstructed. The matrix may be square,although it may be rectangular or other shape. The values in this matrixare chosen to provide a digital filtering function when the pixels ofthe image are convoluted with the filter matrix.

The process governing the reconstruction of the two-dimensional digitalfilter 604 is$t_{x} = {\sum\limits_{i}^{\quad}{\sum\limits_{j}^{\quad}{x_{i\quad j}*f_{i\quad j}}}}$wherein t_(x) is the output pixel, x_(ij) is the input binary pixel atlocation (i,j) relative to the pixel under test, f_(ij) are the filterweights, and the summation is over all the pixels in the filter window.

The tag data stream is also used to control which method is used to dothe contone conversion. Tag data within the tag data stream indicateswhether a pixel is a pictorial pixel or a text pixel. If the imageneighborhood contains only pictorial pixels, the two-dimensional digitalfilter 604 is used to convert the current pixel value to a gray value.If any of the pixels in the neighborhood is a text pixel, output fromone of the look-up tables (503, 504, and 505), based upon the output ofmultiplexer 506, is used to convert the current pixel 1-bit value to agray value.

It is noted that the filtering method may not be limited to a singlefilter, but may also utilize a plurality of filters, each correspondingto a different type of pictorial pixel. In this situation, the tag datastream would also include additional tags, corresponding to thepre-defined pictorial types, and the circuitry would include furtherlogic so as to enable the selection of the proper filter output to beused downstream in the image processing pipeline.

In summary, both filtering or selective filtering and a look-up table ora plurality of look-up tables are used to restore binary image data togray values. Images are first segmented into pictorial and text regionsand rendered to 1-bit. Tag data corresponding to the pixel bitdetermines whether the pixel is a pictorial or a text pixel. The tagdata may also determine the type of pictorial pixel or the type of textpixel. In the restoration process, the filter (or filters) is used whenall the pixels in a neighborhood around the current pixel are pictorialpixels. The look-up table (or tables) is used if the tag data of any ofthe pixels in the neighborhood are text pixels.

By using the tag data to selectively turn the filtering process ON orOFF, the edges of the image are preserved. Furthermore, the tag data isused to condition the filtering process such that only the pictorialpixels are used in the filtering calculation, thus minimizing averagingof text pixels in transition areas.

It will be appreciated that various of the above-disclosed and otherfeatures and functions, or alternatives thereof, may be desirablycombined into many other different systems or applications. Also thatvarious presently unforeseen or unanticipated alternatives,modifications, variations or improvements therein may be subsequentlymade by those skilled in the art which are also intended to beencompassed by the following claims.

1. A system to generate a continuous tone image from tagged binaryencoded image, comprising: a pattern identifier generator to generate apattern identifier value based upon a pattern of pixels around a pixelof interest; a filter to generate a filter contone value based upon aneighborhood of pixels around a pixel of interest; a contone valuegenerator, operatively connected to said pattern identifier generator,to generate a generator contone value from said pattern identifiervalue; and a selector, operatively connected to said contone valuegenerator and said filter, to select said filter contone value if thepixel of interest corresponds to pictorial pixels and to select saidgenerator contone value if the pixel of interest corresponds to textpixels.
 2. The system as claimed in claim 1, wherein said contone valuegenerator includes a look-up table, said look-up table having aplurality of contone values stored therein, each contone valuecorresponding to a pattern identifier value.
 3. The system as claimed inclaim 1, wherein said filter is a two-dimensional filter.
 4. The systemas claimed in claim 1, wherein said contone value generator includes amemory having a plurality of contone values stored therein, eachcombination of a pattern identifier value being mapped to a storedcontone value.
 5. The system as claimed in claim 1, wherein said contonevalue generator includes a logic circuit to generate a plurality ofcontone values, the generated contone value corresponding to a patternidentifier value.
 6. The system as claimed in claim 1, wherein saidcontone value generator includes a plurality of look-up tables, eachlook-up table having a plurality of contone values stored therein, eachcontone value corresponding to a pattern identifier value.
 7. The systemas claimed in claim 6, wherein said contone value generator includes animage type selector to generate an image type signal identifying animage context type in a pre-determined neighborhood of pixels around apixel of interest.
 8. The system as claimed in claim 7, wherein saidimage type signal enables a look-up table associated with the imagecontext type corresponding to said image type signal.
 9. A system togenerate a continuous tone image from tagged binary encoded image,comprising: a pattern identifier generator to generate a patternidentifier value based upon a pattern of pixels around a pixel ofinterest; a filter circuit to generate a filter contone value based upona neighborhood of pixels around a pixel of interest; a contone valuegenerator, operatively connected to said pattern identifier generator,to generate a generator contone value from said pattern identifiervalue; and a selector, operatively connected to said contone valuegenerator and said filter, to select said filter contone value if thepixel of interest corresponds to pictorial pixels and to select saidgenerator contone value if the pixel of interest corresponds to textpixels.
 10. The system as claimed in claim 9, wherein said filtercircuit includes a plurality of filters, each filter generating adifferent filter contone value, and a selection circuit to output one ofthe different contone values based upon a type of pictorial pixel of thepixel of interest.
 11. The system as claimed in claim 10, wherein saidfilters are two-dimensional filters.
 12. The system as claimed in claim9, wherein said contone value generator includes a look-up table, saidlook-up table having a plurality of contone values stored therein, eachcontone value corresponding to a pattern identifier value.
 13. Thesystem as claimed in claim 9, wherein said contone value generatorincludes a memory having a plurality of contone values stored therein,each combination of a pattern identifier value being mapped to a storedcontone value.
 14. The system as claimed in claim 9, wherein saidcontone value generator includes a logic circuit to generate a pluralityof contone values, the generated contone value corresponding to apattern identifier value.
 15. The system as claimed in claim 9, whereinsaid contone value generator includes a plurality of look-up tables,each look-up table having a plurality of contone values stored therein,each contone value corresponding to a pattern identifier value.
 16. Thesystem as claimed in claim 15, wherein said contone value generatorincludes an image type selector to generate an image type signalidentifying an image context type in a pre-determined neighborhood ofpixels around a pixel of interest.
 17. The system as claimed in claim16, wherein said image type signal enables a look-up table associatedwith the image context type corresponding to said image type signal. 18.A method to generate a continuous tone image from tagged binary encodedimage, comprising: generating a pattern identifier value based upon apattern of pixels around a pixel of interest; filtering a neighborhoodof pixels around a pixel of interest to generate a filter contone value;generating a generator contone value from the pattern identifier value;selecting the filter contone value if the pixel of interest correspondsto pictorial pixels; and selecting the generator contone value if thepixel of interest corresponds to text pixels.
 19. The method as claimedin claim 18, wherein the filter contone value is generated by atwo-dimensional filter.
 20. The method as claimed in claim 18, whereinthe filter contone value is generated by one of a plurality oftwo-dimensional filters.